A Sencha Touch app which looks like an iPhone app |
|
Developer(s) | Sencha |
---|---|
Stable release | 1.1.1 / August 29, 2011 |
Development status | Active |
Written in | JavaScript |
Operating system | Android, iOS |
Available in | English |
Type | JavaScript library |
License | GPLv3 or proprietary |
Website | www.sencha.com/products/touch |
Sencha Touch is a user interface (UI) JavaScript library, or framework, specifically built for Mobile Web. It can be used by Web developers to develop user interface for mobile web applications that look and feel like native applications on supported mobile devices. It is fully based on web standards such as HTML5, CSS3 and JavaScript.
Contents |
Sencha Touch is a product of Sencha which was formed after popular JavaScript library projects Ext JS, jQTouch and Raphaël were combined.[1] The first release of Sencha Touch was version 0.90 beta on July 17 2010. This beta release supported devices running Android, and iOS (on iPhone, iPod touch, iPad). Subsequently the first stable version 1.0 was released on November 2010. The latest stable version 1.1.0 adds support to devices running BlackBerry OS version 6. Sencha Touch is mainly based on WebKit, so it can support only WebKit-based browsers such as Google Chrome and Safari.[2] Support for other browsers or Web browser engines is incomplete.
Sencha Touch includes a set of graphical user interface GUI-based controls or "components" for use within mobile web applications. These components are highly optimized for touch input. List of components:[3]
All the components can be themed according to the target device. This is done using SASS, a stylesheet language built over CSS.
Sencha Touch has certain in-built transition effects.
It supports common touch gestures basically built from touch events which are Web standards but are supported only by Android, iOS, and some touch enabled devices.
Sencha Touch being JavaScript Framework consists of both UI libraries and also Data libraries.[4] With the use of Data libraries the mobile web application can get data from server. Sencha Touch has a data package to support web standards for data interchange with servers such as Ajax and JSONP.[5] It also supports YQL.[6][7] Using these technologies, data can be bound to visual components such as lists to reflect data from servers.
Mobile Web applications require connection to the network to serve data to users. However users would like to use applications even when it is not connected, and synchronize with servers when connected. The ability of a web application to work offline is a big feature of HTML5.[8] HTML5 uses CACHE MANIFEST to list the resources to fetch while connected to server and maintain while to be used while offline.[9] Sencha Touch leverages this feature and adds to it to make good offline apps. Using the Framework it is possible to dynamically change the list of resources such as scripts, stylesheets etc., that we want to cache based on the state of application and user demand.[10] It is possible to store data offline by binding the data to components using JSONP when its online so the data is present even when the device gets disconnected.
Native applications on mobile devices have access to all the device components such as the camera, compass, and microphone[11] which Sencha Touch cannot currently access. As mobile browsers and devices have evolved to meet emerging standards, components such as the GPS, WebSockets, and accelerometer are now available to mobile web applications, with the GPS specifically supported with Sencha Touch.[12] Sencha Touch can be used along with PhoneGap to create applications native to a mobile device for access to currently native-only components and to app marketplaces.[13] The capability of such applications is restricted by the capability of PhoneGap. Alternatively, Sencha Touch can be used with other solutions such as Worklight,[14] which are based on PhoneGap but allow full access to native APIs using Hybrid Coding.